Format |
Syntax: |
Operation: |
Operands: |
Architecture revision |
Opcode | ||||||||||||
1 |
psubxs.uh Rd, Rx, Ry |
Rd[31:16] = SATSU(ZE(Rx[31:16], 17) - ZE(Ry[15:0], 17), 16) ; Rd[15:0] = SATSU(ZE(Rx[15:0], 17) - ZE(Ry[31:16], 17), 16); |
{d, x, y} ∈ {0, 1, …, 15} |
Rev1+ |
| ||||||||||||
2 |
psubxs.sh Rd, Rx, Ry |
Rd[31:16] = SATS(SE(Rx[31:16], 17) - SE(Ry[15:0], 17), 16) ; Rd[15:0] = SATS(SE(Rx[15:0], 17) - SE(Ry[31:16], 17), 16); |
{d, x, y} ∈ {0, 1, …, 15} |
Rev1+ |
|
Subtract the bottom halfword of Ry from the top halfword of Rx and the top halfword of Ry from the bottom halfword of Rx. The resulting halfwords are saturated to unsigned halfwords (psubxh.uh) or signed halfwords (psubxh.sh) and then packed together in the destination regis- ter.
Q: |
Flag set if saturation occured in one or more of the partial operations. |
V: |
Not affected. |
N: |
Not affected. |
Z: |
Not affected. |
C: |
Not affected. |